[Talend]tReplicateを利用してrowを複製する
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tReplicate」を利用したrowの複製を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。
tReplicateについて
「tReplicate」を利用するとファイルの作成を行うことができます。
「tReplicate」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
「tFixedFlowInput」でサンプルレコードを生成し、「tReplicate」でrowを3つに複製して「tLogRow」で確認するジョブとなっています。
「tFixedFlowInput」コンポーネントの設定
「tFixedFlowInput」コンポーネントでは、以下のようなサンプルレコードを1レコード生成しています。
「tReplicate」コンポーネントの設定
以下のとおりコンポーネント自体に特に設定項目はありません。
コンポーネントの利用方法として、まずは複製したい入力のrowを繋げて、その後は通常通りコンポーネントを右クリックして「ロウ > メイン」のrowを出力側のコンポーネントに繋げます。通常では「メイン」出力は1つしか利用できませんが、このコンポーネントでは何度も利用が可能です。
今回は3つ出力をしてみます。なお、出力される順番はrowのラベルにorder: 1
などと表示されるので、表示されている数値で出力される順番が判断できます。
「tLogRow」コンポーネントの設定
出力結果を分かりやすくするため、「モード」を「テーブル」に設定してコンポーネント名が表示されるようにしました。
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
[statistics] connecting to socket on port 3825 [statistics] connected .----+----. |tLogRow_1| |=---+---=| |Year|Name| |=---+---=| |2018|ZI-O| '----+----' .----+----. |tLogRow_2| |=---+---=| |Year|Name| |=---+---=| |2018|ZI-O| '----+----' .----+----. |tLogRow_3| |=---+---=| |Year|Name| |=---+---=| |2018|ZI-O| '----+----' [statistics] disconnected
各LogRowコンポーネントに複製されたrowが出力されていますね!なお、入力が複数レコードの場合は、出力先コンポーネント毎に複数レコード処理がされます。この場合だとtLogRow_1
に複数レコードが表示された後にtLogRow_2
の出力が始まるという流れです。
まとめ
以上、「tReplicate」コンポーネントの紹介でした。
「入力データは1つのrowだけど、複数の出力先にしたい!」というケースなどに活用できるコンポーネントだと思います。
それでは!